package net.sudot.chess.business.wechat.message;

import net.sudot.chess.business.model.User;

import java.time.ZoneId;
import java.time.format.DateTimeFormatter;

/**
 * 模板消息接口
 * <pre>
 *     消息内容和前和后各留一空行
 *     如:
 *     xxx
 *
 *     a:vv
 *     b:xx
 *
 *     xxx
 * </pre>
 *
 * @author tangjialin on 2018-04-01.
 */
public interface TemplateMessage {
    /** 日期格式 */
    String DATE_FORMAT_PATTERN = "yyyy-MM-dd HH:mm";
    DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern(DATE_FORMAT_PATTERN).withZone(ZoneId.systemDefault());

    /**
     * 获得模板消息的模板ID
     *
     * @return 返回模板ID
     */
    String getTemplateId();

    /**
     * 消息发送
     *
     * @param user 发送的用户信息
     * @param data 模板消息填充的数据
     */
    void send(User user, Object data);
}
